﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ServiceConsumer;
using System.Data;
using System.Web.Security;

public partial class Admin_EditCarrier : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!(Roles.IsUserInRole("Admin")))
        {
            Response.Redirect("~/Admin/Login.aspx");
        }

        if (Request.Form["act"] == null)
        {
            string act = "";
            int page = 1;
            int objId = 0;
            if (Request.QueryString["act"] != null)
                act = Request.QueryString["act"].ToString();
            if (Request.QueryString["id"] != null)
                objId = Convert.ToInt32(Request.QueryString["id"].ToString());
            if (Request.QueryString["Page"] != null)
                page = Convert.ToInt32(Request.QueryString["Page"].ToString());

            if (act == "" || objId <= 0) Response.Redirect("CarrierManager.aspx?Page="+page);
            NhaKinhDoanhDataContext db = new NhaKinhDoanhDataContext();
            NhaVanChuyen objInfo = new NhaVanChuyen();
            if (act != "" && objId > 0)
            {
                if (act == "view")
                {
                    TenNhaVanChuyenTextBox.Enabled = false;
                    TenDangNhapWSTextBox.Enabled = false;
                    MatKhauWSTextBox.Enabled = false;
                    CreditCardTextBox.Enabled = false;
                    ThanhPhoComboBox.Enabled = false;
                    LinkWSTextBox.Enabled = false;
                    btnCapNhat.Visible = false;
                    chkNhaMoiGioiMacDinh.Visible = false;
                    Label1.Visible = false;
                    NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.information, "Thông tin chi tiết");
                }

                if ((from obj in db.NhaVanChuyens
                     where obj.CarrierID.Equals(objId)
                     select obj).Count() > 0)
                {
                    objInfo = (from obj in db.NhaVanChuyens
                               where obj.CarrierID.Equals(objId)
                              select obj).Single();

                    MaNhaVanChuyenLabel.Text = objInfo.CarrierID.ToString();
                    if (objInfo.CarrierName != null)
                        TenNhaVanChuyenTextBox.Text = objInfo.CarrierName;
                    else
                        TenNhaVanChuyenTextBox.Text = "";

                    if (objInfo.UserName != null)
                        TenDangNhapWSTextBox.Text = objInfo.UserName;
                    else
                        TenDangNhapWSTextBox.Text = "";

                    if (objInfo.PassWord != null)
                        MatKhauWSTextBox.Text = objInfo.PassWord;
                    else
                        MatKhauWSTextBox.Text = "";

                    if (objInfo.CreditCard != null)
                        CreditCardTextBox.Text = objInfo.CreditCard;
                    else
                        CreditCardTextBox.Text = "";


                    //if (Session["CitiesList"] != null) {
                    //    DataTable dtTP=(DataTable)Session["CitiesList"];
                    //    ThanhPhoComboBox.DataSource = dtTP;
                    //    ThanhPhoComboBox.DataTextField = dtTP.Columns["CityName"].ToString();
                    //    ThanhPhoComboBox.DataValueField = dtTP.Columns["CityID"].ToString();
                    //    ThanhPhoComboBox.DataBind();
                    //    ThanhPhoComboBox.SelectedValue = objInfo.CiTyID;
                    //}

                    try
                    {
                        if (!IsPostBack)
                        {
                            CarrierServices carrier = new CarrierServices(objId);
                            DataTable dtTP = carrier.CitiesList();
                            ThanhPhoComboBox.DataSource = dtTP;
                            ThanhPhoComboBox.DataTextField = dtTP.Columns[1].ToString();
                            ThanhPhoComboBox.DataValueField = dtTP.Columns[0].ToString();
                            ThanhPhoComboBox.DataBind();
                            ThanhPhoComboBox.SelectedValue = objInfo.CiTyID.Trim();
                        }
                    }
                    catch
                    {
                    }


                    if (objInfo.LinkWS != null)
                        LinkWSTextBox.Text = objInfo.LinkWS;
                    else
                        LinkWSTextBox.Text = "";
                   

                }
            }
        }
        else
        {
            if (InValidateForm() == false && Request.Form["act"] != null)
            {
                NhaKinhDoanhDataContext db = new NhaKinhDoanhDataContext();
                var listVanChuyen = db.NhaVanChuyens.ToList<NhaVanChuyen>();
                bool isNeverSet = true;
                if (listVanChuyen != null)
                {

                    foreach (NhaVanChuyen vanChuyen in listVanChuyen)
                    {
                        var objQuery = (from obj in db.NhaVanChuyens
                                        where obj.CarrierID.Equals(vanChuyen.CarrierID)
                                        select obj).Single();
                        objQuery.DefaultCarrier = 0;
                        if (MaNhaVanChuyenLabel.Text.Trim() == objQuery.CarrierID.ToString())
                        {
                            objQuery.CarrierName = TenNhaVanChuyenTextBox.Text.Trim();
                            objQuery.UserName = TenDangNhapWSTextBox.Text.Trim();
                            //objQuery.PassWord = MD5Hash.GetMd5Hash(MatKhauWSTextBox.Text.Trim());
                            objQuery.PassWord = MatKhauWSTextBox.Text.Trim();
                            objQuery.LinkWS = LinkWSTextBox.Text.Trim();
                            if (isNeverSet && chkNhaMoiGioiMacDinh.Checked)
                            {
                                objQuery.DefaultCarrier = 1;
                                Session["CitiesList"] = null;
                                isNeverSet = false;
                            }
                        }

                        db.SubmitChanges();
                    }

                    //nếu chưa thằng nào được set default thì lấy thằng đang sửa mà set :d
                    if (isNeverSet)
                    {
                        var objQuery = (from obj in db.NhaVanChuyens
                                        where obj.CarrierID.Equals(MaNhaVanChuyenLabel.Text.Trim())
                                        select obj).Single();
                        objQuery.DefaultCarrier = 1;
                        db.SubmitChanges();
                    }

                    NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.success, "Thông tin nhà vận chuyển đã được cập nhật thành công.");

                }
            }
        }


    }

    public bool InValidateForm()
    {
        bool error = false;

        if (MaNhaVanChuyenLabel.Text.Trim() == "")
            error = true;
        if (TenNhaVanChuyenTextBox.Text == "")
        {
            TenNhaVanChuyenTextBox.Focus();
            ErrorTenNhaVanChuyenTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
            ErrorTenNhaVanChuyenTextBox.InnerHtml = "";



        if (TenDangNhapWSTextBox.Text == "")
        {
            TenDangNhapWSTextBox.Focus();
            ErrorTenDangNhapWSTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
            ErrorTenDangNhapWSTextBox.InnerHtml = "";

        
        if (MatKhauWSTextBox.Text == "")
        {
            MatKhauWSTextBox.Focus();
            ErrorMatKhauWSTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
            ErrorMatKhauWSTextBox.InnerHtml = "";


        if (CreditCardTextBox.Text == "")
        {
            CreditCardTextBox.Focus();
            ErrorCreditCardTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
            ErrorCreditCardTextBox.InnerHtml = "";
       

        if (LinkWSTextBox.Text == "")
        {
            LinkWSTextBox.Focus();
            ErrorLinkWSTextBox.InnerHtml = "Thuộc tính được yêu cầu.";
            error = true;
        }
        else
            ErrorLinkWSTextBox.InnerHtml = "";
        if (error)
            NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.error, "Bạn hãy kiểm tra lại các thông tin lỗi.");

        return error;
    }
}